<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 对象新增方法扩展 

        // 1.Object.is();
        // ES5 判断2个值是否相同
        // var a = 10;
        // var b = "10"; 
        // console.log(a===b);

        // console.log(NaN===NaN);
        // 基本数据类型  null
        // console.log(typeof null);
        // 断崖式更新 
        // let  var
        // __proto__
        // keyCode  ---> key
        // var res = Object.is(NaN,NaN);
        // console.log(res);

        // 2. 合并2个或者多个对象  合并成一个对象
        // Object.assign();
        // ... 展开运算符
        //     var obj1 = {
        //         name:"张三",
        //         age:20
        //     }

        //     var obj2 = {
        //         height:"178cm",
        //         age:30
        //     }

        //     var obj3 = {
        //         hobby:"篮球"
        //     }
        //   var res =   Object.assign(obj1,obj2,obj3);
        //   console.log(res);

        // 3.Object.hasOwn : ES6出现 取代 ES5里的 obj.hasOwnProperty 
        // 判断某个属性是否是对象的自身属性；
        // Object.prototype.heigth = "178cm"
        // var obj = {
        //     myname: "张三",
        //     age: 20
        // }

        // for (let key in obj) {
        //     // if (obj.hasOwnProperty(key)) { // es5的判断
        //     if (Object.hasOwn(obj, key)) {
        //         console.log(key);
        //     }

        //     // }
        // }


        // 4. Object.seal(); 把对象变成不可配置对象 
        // var obj = {
        //     myname:"张三",
        //     age:20
        // }
        // Object.seal(obj);

        // // delete obj.myname;
        // obj.myname = "123";
        // console.log(obj);


        // 5. 获取对象的所有键名；var 键名数组 =  Object.keys(对象)
        // var obj = {
        //     myname:"zhangsan",
        //     age:20
        // }

        // var arr = Object.keys(obj);
        // console.log(arr);


        // 6. 获取对象所有的键值 ： var 键值的数组 = Object.values(对象)

        // var obj = {
        //     myname:"zhangsan",
        //     age:20
        // }

        // var arr = Object.values(obj);
        // console.log(arr);

        // 需求： 把对象转成特殊格式（querystring）的字符串
        //?cat=6994,6995,7003&ev=4644_70372&sort=sort_totalsales15_desc&trans=1&JL=2_1_0
        var obj = {
            myname:"zhangsan",
            age:20,
            height:"178cm"
        }

        // console.log(window.location.search);  // 获取地址栏 ? 后面的内容 
        // querystring 是有规则的字符串 键名=键值&键名=键值
        // console.log(window.location.hash);// 获取地址栏 # 号后的哈希内容


    </script>
</body>

</html>